﻿using System;
using System.Collections.Generic;
using Model.Miembro;
using System.Web.Security;
using System.Data;
using System.Collections.ObjectModel;
using Model;
using System.Collections;
using System.Text.RegularExpressions;
using System.Globalization;
using System.Web.UI.WebControls;

namespace Interfaces.Miembro
{
    public  partial class Buscar : System.Web.UI.Page
    {
        ICollection list;
        ICollection listInactivos;

        private static ClaseMiembro newPagoCuota;
        private static List<ClaseMiembro> listaMiembros;
        string res;
        public static int numeroVista;
        public static int indiceMulti = 0;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!User.Identity.IsAuthenticated)
                FormsAuthentication.RedirectToLoginPage();
            newPagoCuota = null;


            ClaseMiembro asdf = (ClaseMiembro)Session["ClaseMiembro"];
            if (asdf.cargo == "Administrador")
            {
                int index = Convert.ToInt32(Request.QueryString["va1"]);
                if (index == 0)
                {
                    this.MultiView1.ActiveViewIndex = 0;
                }
                else
                {
                    if (index == 1)
                    {
                        this.MultiView1.ActiveViewIndex = 1;
                    }
                    else
                    {
                        this.MultiView1.ActiveViewIndex = 3;
                    }
                }
                numeroVista = -1;
                listaMiembros = Processes.Miembro.GestorMiembro.getMiembros();

                list = DataBase.Miembro.BDMiembro.DevolverTodosActivos();
                listInactivos = DataBase.Miembro.BDMiembro.DevolverTodosInactivos();
                //if (!IsPostBack)
                // {
                DataList1.DataSource = DataBase.Miembro.BDMiembro.DevolverTodosActivos();// DataBase.Miembro2.BDMiembro.DevolverTodos();
                DataList1.DataBind();
                DataList2.DataSource = DataBase.Miembro.BDMiembro.DevolverTodosActivos();
                DataList2.DataBind();
                DataList3.DataSource = DataBase.Miembro.BDMiembro.DevolverTodosInactivos();
                DataList3.DataBind();
                //codirectora = new Collection<Miembroo>();
                // }
            }
            else
            {
                Label7.Text = "No cuenta con los permisos adecuados";
                MultiView1.ActiveViewIndex = 5;

            }
        }
        protected void Page_PreInit(object sender, EventArgs e)
        {
            if (Session["BuscarMaster"] != null)
            {
                res = (string)Session["BuscarMaster"];
                this.MasterPageFile = res;
            }
        }
        protected void Button4_Click(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add(new DataColumn("CI", typeof(long)));
            dt.Columns.Add(new DataColumn("Nombre", typeof(String)));
            dt.Columns.Add(new DataColumn("ApellidoPaterno", typeof(String)));
            dt.Columns.Add(new DataColumn("ApellidoMaterno", typeof(String)));
            dt.Columns.Add(new DataColumn("Cargo", typeof(String)));

            String format = @"^[a-zA-Z0-9 ]";
            Collection<Miembroo> resp = new Collection<Miembroo>();
            if (!String.IsNullOrEmpty(TextBox1.Text))
            {
                if (!Regex.IsMatch(TextBox1.Text, format))
                {
                    throw new Exception("Formato incorrecto");
                }
            }
            if (list != null)
            {
                if (TextBox1.Text != null)
                {

                    foreach (DataRowView prod in list)
                    {
                        Miembroo m = new Miembroo();
                        m.CI = Convert.ToInt64(prod["CI"]);
                        m.Cargo = prod["Cargo"].ToString();
                        m.Nombre = prod["Nombre"].ToString().ToLower(CultureInfo.CurrentCulture);
                        m.ApellidoPaterno = prod["ApellidoPaterno"].ToString().ToLower(CultureInfo.CurrentCulture);
                        m.ApellidoMaterno = prod["ApellidoMaterno"].ToString().ToLower(CultureInfo.CurrentCulture);
                        String lword = TextBox1.Text.ToLower(CultureInfo.CurrentCulture);
                        if (m.Nombre.Contains(lword) || m.ApellidoPaterno.Contains(lword) || m.CI.ToString().Contains(lword))
                        {
                            DataRow dr = dt.NewRow();
                            dr[0] = (m.CI.ToString());
                            dr[1] = (m.Nombre);
                            dr[2] = (m.ApellidoPaterno);
                            dr[3] = (m.ApellidoMaterno);
                            dr[4] = (m.Cargo);
                            dt.Rows.Add(dr);


                        }
                    }
                }
            }
            if (dt.Rows.Count > 0)
            {
                DataView dv = new DataView(dt);
                ICollection t = (ICollection)dv;
                DataList1.DataSource = t;
                DataList1.DataBind();
            }

        }
        [System.Web.Services.WebMethodAttribute(), System.Web.Script.Services.ScriptMethodAttribute()]
        public static List<string> miembros(string prefixText, int count, string contextKey)
        {
            Processes.Miembro.Class2.constructor();
            List<ClaseMiembro> polo = Processes.Miembro.Class2.encontrados(prefixText, 2);
            List<string> nombres = new List<string>();
            //string[] nombres = new string[8];
            for (int i = 0; i < polo.Count; i++)
            {
                string aux = polo[i].apePaterno + "_" + polo[i].apeMaterno + "_" + polo[i].nombre;
                nombres.Add(aux);
            }
            //  return (from m in nombres where m.StartWith(prefixText,StringComparison.CurrentCultureIgnoreCase) select m).Take(count).ToArray);
            return nombres;
        }
        [System.Web.Services.WebMethodAttribute(), System.Web.Script.Services.ScriptMethodAttribute()]
        public static List<string> carnets(string prefixText, int count, string contextKey)
        {
            Processes.Miembro.Class2.constructor();
            List<ClaseMiembro> polo = Processes.Miembro.Class2.encontrados(prefixText, 1);
            List<string> nombres = new List<string>();

            for (int i = 0; i < polo.Count; i++)
            {
                string aux = (polo[i].carnet).ToString();
                nombres.Add(aux);
            }
            //  return (from m in nombres where m.StartWith(prefixText,StringComparison.CurrentCultureIgnoreCase) select m).Take(count).ToArray);
            return nombres;
        }

        [System.Web.Services.WebMethodAttribute(), System.Web.Script.Services.ScriptMethodAttribute()]
        public static List<string> polop(string prefixText, int count, string contextKey)
        {
        
        
            List<string> nombres = new List<string>();
            nombres.Add("asdf");
            nombres.Add("sdjhfask");
            nombres.Add("asdfasdfasdf");
            //  return (from m in nombres where m.StartWith(prefixText,StringComparison.CurrentCultureIgnoreCase) select m).Take(count).ToArray);
            return nombres;
        }


        
        

        
        protected void LinkButton1_Click(object sender, EventArgs e)
        {
            MultiView1.ActiveViewIndex = 2;
        }

        protected void LinkButton2_Click(object sender, EventArgs e)
        {
            MultiView1.ActiveViewIndex = 3;
        }

        protected void LinkButton3_Click(object sender, EventArgs e)
        {
            MultiView1.ActiveViewIndex = 4;
        }

        protected void LinkButton8_Click(object sender, EventArgs e)
        {

        }

        protected void LinkButton9_Click(object sender, EventArgs e)
        {
            MultiView1.ActiveViewIndex = 3;
        }

        protected void LinkButton10_Click(object sender, EventArgs e)
        {
            MultiView1.ActiveViewIndex = 4;
        }

        protected void LinkButton6_Click(object sender, EventArgs e)
        {
            MultiView1.ActiveViewIndex = 2;
        }

        protected void LinkButton17_Click(object sender, EventArgs e)
        {
            MultiView1.ActiveViewIndex = 4;
        }

        protected void LinkButton20_Click(object sender, EventArgs e)
        {
            MultiView1.ActiveViewIndex = 2;
        }

        protected void LinkButton21_Click(object sender, EventArgs e)
        {
            MultiView1.ActiveViewIndex = 3;
        }


        
        protected void Button1_Click(object sender, EventArgs e)
        {
            if (RadioButton2.Checked==true)//para carnet
            {
                string aux = TextBox2.Text;
                string aux22 = aux.Replace(" ", "");
                TextBox2.Text = aux22;
                if (aux22 != "")
                {
                    Label3.Visible = false;
                        ClaseMiembro auxx = Processes.Miembro.GestorMiembro.MetodoBuscar(Convert.ToInt64(aux22));

                        if (auxx != null)
                        {
                            newPagoCuota = new ClaseMiembro();
                            newPagoCuota.nombre = auxx.nombre;
                            newPagoCuota.apePaterno = auxx.apePaterno;
                            newPagoCuota.apeMaterno = auxx.apeMaterno;
                            newPagoCuota.carnet = auxx.carnet;

                            Label2.Text = "Nombre: " + newPagoCuota.apePaterno + " " + newPagoCuota.apeMaterno + " " + newPagoCuota.nombre + "     CI: " + (newPagoCuota.carnet);
                            Label3.Visible = false;
                            Label2.Visible = true;

                            //if (numeroVista==3)
                                MultiView1.ActiveViewIndex = 2;
                            if (numeroVista == 2)
                                MultiView1.ActiveViewIndex = 1;
                            if (numeroVista == 1)
                                MultiView1.ActiveViewIndex = 0;    
                            
                        }
                        else
                        {
                            Label3.Text = "No existe este Numero de CI";
                            Label3.Visible = true;
                            MultiView1.ActiveViewIndex = -1;
                            Label2.Visible = false;
                        }
                }
                else
                {
                    Label3.Text = "Introdusca el numero de carnet";
                    Label3.Visible = true;
                    MultiView1.ActiveViewIndex = -1;
                    Label2.Visible = false;
                }    
            }
            else  //por nombre
            {
                string aux = TextBox3.Text;
                string aux22 = aux.Replace(" ", "");
                TextBox3.Text = aux22;
                if (aux22 != "")
                {
                    Label3.Visible = false;
                    
                    Processes.Miembro.Class2.constructor();
                    ClaseMiembro auxx = Processes.Miembro.Class2.buscarPorApePaterno(aux22);
                       
                    if (auxx != null)
                    {
                        newPagoCuota = new ClaseMiembro();
                        newPagoCuota.nombre = auxx.nombre;
                        newPagoCuota.apePaterno = auxx.apePaterno;
                        newPagoCuota.apeMaterno = auxx.apeMaterno;
                        newPagoCuota.carnet = auxx.carnet;

                        Label2.Text = "Nombre: " + newPagoCuota.apePaterno + " " + newPagoCuota.apeMaterno + " " + newPagoCuota.nombre + "     CI: " + newPagoCuota.carnet;
                        Label2.Visible = true;
                        Label3.Visible = false;

                        if (numeroVista == 3)
                            MultiView1.ActiveViewIndex = 2;
                        if (numeroVista == 2)
                            MultiView1.ActiveViewIndex = 1;
                        if (numeroVista == 1)
                            MultiView1.ActiveViewIndex = 0;    
                        
                    }
                    else
                    {
                        Label3.Text = "No existe la persona";
                        Label3.Visible = true;
                        MultiView1.ActiveViewIndex = -1;
                        Label2.Visible = false;
                    }
                    
                }
                else
                {
                    Label3.Text = "Introdusca el apellido paterno";
                    Label3.Visible = true;
                    MultiView1.ActiveViewIndex = -1;
                    Label2.Visible = false;
                }
            }
            
        }
        private bool verificarNumero(string aux22)
        {
            bool res= true;
            for (int i = 0; i < aux22.Length; i++)
            {
                switch (aux22[i])
                {
                    case '1':
                        break;
                    case '2':
                        break;
                    case '3':
                        break;
                    case '4':
                        break;
                    case '5':
                        break;
                    case '6':
                        break;
                    case '7':
                        break;
                    case '8':
                        break;
                    case '9':
                        break;
                    case '0':
                        break;
                    default:
                        return false;
                }
            }
            return res;
        }
        protected void TextBox1_TextChanged(object sender, EventArgs e)
        {
            
        }

        protected void LinkButton13_Click(object sender, EventArgs e)
        {
            //Response.Redirect("Webform2.aspx?Name=" +
            //this.txtName.Text + "&LastName=" +
            //this.txtLastName.Text);
            if (newPagoCuota != null)
            {
                Response.Redirect("/Cuotas/Ver.aspx?va1=" + newPagoCuota.carnet);
            }
            else 
            {
                
            }
            
        }

        protected void LinkButton14_Click(object sender, EventArgs e)
        {
            if (newPagoCuota != null)
            {
                Response.Redirect("/Cuotas/RealizarCobro.aspx?va1=" + newPagoCuota.carnet);
            }
            else
            {

            }
        }

        protected void LinkButton23_Click(object sender, EventArgs e)
        {

        }

        protected void LinkButton25_Click(object sender, EventArgs e)
        {
            if (newPagoCuota != null)
            {
                Response.Redirect("/Cuotas/ModificarCuota.aspx?va1=" + newPagoCuota.carnet);
            }
        }

       

        protected void RadioButton1_CheckedChanged(object sender, EventArgs e)
        {
            if (RadioButton1.Checked ==true)
            {
                Panel1.Visible = true;
                Panel2.Visible = false;
                TextBox2.Text = "";
                RadioButton2.Checked = false;
                MultiView1.ActiveViewIndex = -1;
            }
        }

        protected void RadioButton2_CheckedChanged(object sender, EventArgs e)
        {
            if (RadioButton2.Checked == true)
            {
                Panel1.Visible = false;
                Panel2.Visible = true;
                TextBox3.Text = "";
                RadioButton1.Checked = false;
                MultiView1.ActiveViewIndex = -1;
            }
        }

        protected void LinkButton26_Click(object sender, EventArgs e)
        {
            Response.Redirect("~/Cuotas/ReporteDeudores.aspx");
        }

        protected void DireButn0_Click(object sender, EventArgs e)
        {
            //if (newPagoCuota != null)
            //{
                LinkButton b = sender as LinkButton;
                Response.Redirect("/Cuotas/Ver.aspx?va1=" + (Convert.ToInt64(b.CommandArgument) ) );
            //}
            
        }
        protected void DireButn3_Click(object sender, EventArgs e)
        {
            //if (newPagoCuota != null)
            //{
            LinkButton b = sender as LinkButton;
            Response.Redirect("/Miembro/CambiarPermisos.aspx?va1=" + (Convert.ToInt64(b.CommandArgument)));
            //}

        }
        protected void DireButn1_Click(object sender, EventArgs e)
        {
            LinkButton b = sender as LinkButton;
            Response.Redirect("/Cuotas/RealizarCobro.aspx?va1=" + (Convert.ToInt64(b.CommandArgument)));
            //Response.Redirect("/Cuotas/RealizarCobro.aspx?va1=" + newPagoCuota.carnet);
        }

        protected void DireButn2_Click(object sender, EventArgs e)
        {
            LinkButton b = sender as LinkButton;
            Response.Redirect("/Cuotas/ModificarCuota.aspx?va1=" + (Convert.ToInt64(b.CommandArgument)));
            //ModificarCuota.aspx?va1="
        }

        protected void Button5_Click(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add(new DataColumn("CI", typeof(long)));
            dt.Columns.Add(new DataColumn("Nombre", typeof(String)));
            dt.Columns.Add(new DataColumn("ApellidoPaterno", typeof(String)));
            dt.Columns.Add(new DataColumn("ApellidoMaterno", typeof(String)));
            dt.Columns.Add(new DataColumn("Cargo", typeof(String)));
            dt.Columns.Add(new DataColumn("vara", typeof(bool)));
            String format = @"^[a-zA-Z0-9 ]";
            Collection<Miembroo> resp = new Collection<Miembroo>();
            if (!String.IsNullOrEmpty(TextBox4.Text))
            {
                if (!Regex.IsMatch(TextBox4.Text, format))
                {
                    throw new Exception("Formato incorrecto");
                }
            }
            if (list != null)
            {
                if (TextBox4.Text != null)
                {

                    foreach (DataRowView prod in list)
                    {
                        Miembroo m = new Miembroo();
                        m.CI = Convert.ToInt64(prod["CI"]);
                        m.Cargo = prod["Cargo"].ToString();
                        m.Nombre = prod["Nombre"].ToString().ToLower(CultureInfo.CurrentCulture);
                        m.ApellidoPaterno = prod["ApellidoPaterno"].ToString().ToLower(CultureInfo.CurrentCulture);
                        m.ApellidoMaterno = prod["ApellidoMaterno"].ToString().ToLower(CultureInfo.CurrentCulture);
                        m.vara = Convert.ToBoolean(prod["vara"]);
                        String lword = TextBox4.Text.ToLower(CultureInfo.CurrentCulture);
                        if (m.Nombre.Contains(lword) || m.ApellidoPaterno.Contains(lword) || m.CI.ToString().Contains(lword))
                        {
                            DataRow dr = dt.NewRow();
                            dr[0] = (m.CI.ToString());
                            dr[1] = (m.Nombre);
                            dr[2] = (m.ApellidoPaterno);
                            dr[3] = (m.ApellidoMaterno);
                            dr[4] = (m.Cargo);
                            dr[5] = (m.vara);
                            dt.Rows.Add(dr);


                        }
                    }
                }
            }
            if (dt.Rows.Count > 0)
            {
                DataView dv = new DataView(dt);
                ICollection t = (ICollection)dv;
                DataList2.DataSource = t;
                DataList2.DataBind();
                
            }

        }
        protected void DataList2_ItemCommand(object source, DataListCommandEventArgs e)
        {

            LinkButton cambiarpermisos = (LinkButton)e.Item.FindControl("DireButn0");
            LinkButton vermiembro = (LinkButton)e.Item.FindControl("LinkButton5");
            LinkButton editarmiembro = (LinkButton)e.Item.FindControl("LinkButton6");
            Model.Miembro.ClaseMiembro auu = new Model.Miembro.ClaseMiembro();
            auu = DataBase.Miembro.BDMiembro.BuscarMiembro(Convert.ToInt64(cambiarpermisos.CommandArgument));
            if (auu.stado == "no")
            {
                //cambiarpermisos = DataBase.Programa.BDPrograma.CerrarPrograma(prog);
                cambiarpermisos.Visible = false;
                vermiembro.Visible = false;
                editarmiembro.Visible = false;
            }
        }
        protected void DireButn4_Click(object sender, EventArgs e)
        {
            LinkButton b = sender as LinkButton;
            Response.Redirect("/Miembro/CambiarEstadoDelMiembro.aspx?va1=" + (Convert.ToInt64(b.CommandArgument)));
        }

        protected void DireButn5_Click(object sender, EventArgs e)
        {
            LinkButton b = sender as LinkButton;
            Response.Redirect("/Miembro/CambiarContrasena.aspx?va1=" + (Convert.ToInt64(b.CommandArgument)));
        }

        protected void DireButn6_Click(object sender, EventArgs e)
        {
            LinkButton b = sender as LinkButton;
            Response.Redirect("/Miembro/VerMiembro.aspx?va1=" + (Convert.ToInt64(b.CommandArgument)));
        }

        protected void DireButn7_Click(object sender, EventArgs e)
        {
            LinkButton b = sender as LinkButton;
            Response.Redirect("/Miembro/ModificarMiembro.aspx?va1=" + (Convert.ToInt64(b.CommandArgument)));
        }

        protected void Button555_Click(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add(new DataColumn("CI", typeof(long)));
            dt.Columns.Add(new DataColumn("Nombre", typeof(String)));
            dt.Columns.Add(new DataColumn("ApellidoPaterno", typeof(String)));
            dt.Columns.Add(new DataColumn("ApellidoMaterno", typeof(String)));
            dt.Columns.Add(new DataColumn("Cargo", typeof(String)));
            dt.Columns.Add(new DataColumn("vara", typeof(bool)));
            String format = @"^[a-zA-Z0-9 ]";
            Collection<Miembroo> resp = new Collection<Miembroo>();
            if (!String.IsNullOrEmpty(TextBox5.Text))
            {
                if (!Regex.IsMatch(TextBox5.Text, format))
                {
                    throw new Exception("Formato incorrecto");
                }
            }
            if (listInactivos != null)
            {
                if (TextBox5.Text != null)
                {

                    foreach (DataRowView prod in listInactivos)
                    {
                        Miembroo m = new Miembroo();
                        m.CI = Convert.ToInt64(prod["CI"]);
                        m.Cargo = prod["Cargo"].ToString();
                        m.Nombre = prod["Nombre"].ToString().ToLower(CultureInfo.CurrentCulture);
                        m.ApellidoPaterno = prod["ApellidoPaterno"].ToString().ToLower(CultureInfo.CurrentCulture);
                        m.ApellidoMaterno = prod["ApellidoMaterno"].ToString().ToLower(CultureInfo.CurrentCulture);
                        m.vara = Convert.ToBoolean(prod["vara"]);
                        String lword = TextBox5.Text.ToLower(CultureInfo.CurrentCulture);
                        if (m.Nombre.Contains(lword) || m.ApellidoPaterno.Contains(lword) || m.CI.ToString().Contains(lword))
                        {
                            DataRow dr = dt.NewRow();
                            dr[0] = (m.CI.ToString());
                            dr[1] = (m.Nombre);
                            dr[2] = (m.ApellidoPaterno);
                            dr[3] = (m.ApellidoMaterno);
                            dr[4] = (m.Cargo);
                            dr[5] = (m.vara);
                            dt.Rows.Add(dr);


                        }
                    }
                }
            }
            if (dt.Rows.Count > 0)
            {
                DataView dv = new DataView(dt);
                ICollection t = (ICollection)dv;
                DataList3.DataSource = t;
                DataList3.DataBind();
                
            }

        }

        
    }
}